<html>
<head><meta charset="utf-8"><title>tbd vs ub vs unspecified behavior · project-ffi-unwind · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/index.html">project-ffi-unwind</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html">tbd vs ub vs unspecified behavior</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="178274846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178274846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178274846">(Oct 16 2019 at 10:05)</a>:</h4>
<p>I've prepared a <a href="https://github.com/nikomatsakis/project-ffi-unwind/pull/10" target="_blank" title="https://github.com/nikomatsakis/project-ffi-unwind/pull/10">pull request</a> that refines the terminology along the lines we discussed yesterday. In particular, it separates</p>
<ul>
<li><strong>Undefined Behavior</strong> -- true UB</li>
<li><strong>Unspecified Behavior</strong> -- like Rust layout, which seems to match the <a href="https://en.wikipedia.org/wiki/Unspecified_behavior" target="_blank" title="https://en.wikipedia.org/wiki/Unspecified_behavior">wikipedia definition</a></li>
<li><strong>To Be Determined Behavior</strong> -- a subset of the above, that which we <em>intend</em> to specify in this group</li>
</ul>



<a name="178274851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178274851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178274851">(Oct 16 2019 at 10:05)</a>:</h4>
<p>Comments welcome.</p>



<a name="178274942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178274942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178274942">(Oct 16 2019 at 10:06)</a>:</h4>
<p><span class="user-mention" data-user-id="132920">@gnzlbg</span>, does that address your confusion?</p>



<a name="178281082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178281082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178281082">(Oct 16 2019 at 11:55)</a>:</h4>
<p>Yes. I think that matches how I worded my thoughts in the other PR, where UB is mostly only used for "there is no reasonable way in which we could define the behavior here or no useful guarantees that we could provide"</p>



<a name="178306180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178306180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178306180">(Oct 16 2019 at 16:38)</a>:</h4>
<p>Thanks very much for doing this. I have been thinking that introducing some terminology as a standard for the Rust project overall would be worth its own RFC, but in the mean time this WG can adopt it for our own purposes, as long as we're explicit about it</p>



<a name="178306190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178306190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178306190">(Oct 16 2019 at 16:38)</a>:</h4>
<p>only gave a cursory look to the PR so far but I think it seems good</p>



<a name="178396791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178396791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178396791">(Oct 17 2019 at 16:19)</a>:</h4>
<p><span class="user-mention" data-user-id="132920">@gnzlbg</span> regarding our discussion on <a href="https://github.com/nikomatsakis/project-ffi-unwind/pull/10" target="_blank" title="https://github.com/nikomatsakis/project-ffi-unwind/pull/10">https://github.com/nikomatsakis/project-ffi-unwind/pull/10</a>, I tried to summarize the situation and all relevant facts in a <a href="https://hackmd.io/7ZcKCaRiRO2_I_yK8yeauQ" target="_blank" title="https://hackmd.io/7ZcKCaRiRO2_I_yK8yeauQ">hackmd document</a> -- I'm curious if you feel there are points missing or points that you disagree with in there.</p>



<a name="178397996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178397996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178397996">(Oct 17 2019 at 16:32)</a>:</h4>
<p>So I think that captures most of it</p>



<a name="178398026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398026">(Oct 17 2019 at 16:32)</a>:</h4>
<p>In the section about whether TBD should hit stable, I'd word it a bit differently</p>



<a name="178398033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398033">(Oct 17 2019 at 16:32)</a>:</h4>
<p>All unspecified behavior hits stable, that's normal</p>



<a name="178398068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398068">(Oct 17 2019 at 16:33)</a>:</h4>
<p>I don't think it is worth it to introduce a definition for TBD in the rust language reference</p>



<a name="178398096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398096">(Oct 17 2019 at 16:33)</a>:</h4>
<p>I think it would suffice to say "unspecified behavior" and maybe have a note saying "we are trying to specify this here (link)"</p>



<a name="178398165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398165">(Oct 17 2019 at 16:34)</a>:</h4>
<p>When it comes to unspecified behavior, we have all sorts of notes everywhere anyways documenting how certain platforms work</p>



<a name="178398253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398253">(Oct 17 2019 at 16:35)</a>:</h4>
<p>For me personally, it would be useful to be able to tell when reading a document that should turn into an RFC at some point, which parts of the document are unspecified because we intend the feature to hit stable in that way, and which parts are unspecified because we haven't looked at it yet</p>



<a name="178398397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398397">(Oct 17 2019 at 16:37)</a>:</h4>
<blockquote>
<p>I don't think it is worth it to introduce a definition for TBD in the rust language reference</p>
</blockquote>
<p>(I didn't intend to either)</p>



<a name="178398411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398411">(Oct 17 2019 at 16:37)</a>:</h4>
<blockquote>
<p>I think it would suffice to say "unspecified behavior" and maybe have a note saying "we are trying to specify this here (link)"</p>
</blockquote>
<p>exactly what I had in mind</p>



<a name="178398529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398529">(Oct 17 2019 at 16:38)</a>:</h4>
<p>For users on stable Rust that have to use such unspecified behavior, it is obviously useful as well to know which unspecified behavior is intended to be unspecified long term, and which is being worked on, so it would be nice to have a way to hint at this as well</p>



<a name="178398565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398565">(Oct 17 2019 at 16:38)</a>:</h4>
<blockquote>
<p>exactly what I had in mind</p>
</blockquote>
<p>So I think we agree. The document looks fine to me.</p>



<a name="178398739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398739">(Oct 17 2019 at 16:40)</a>:</h4>
<p>great.</p>



<a name="178398754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398754">(Oct 17 2019 at 16:40)</a>:</h4>
<p>I updated it a bit to clarify the points you raised</p>



<a name="178398929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398929">(Oct 17 2019 at 16:43)</a>:</h4>
<p>I've added an answer to the question about stable Rust code using this already</p>



<a name="178398951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178398951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178398951">(Oct 17 2019 at 16:43)</a>:</h4>
<p>We have had nightly features to avoid UB for a while, and for different reasons, users have not been able to use them</p>



<a name="178400746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400746">(Oct 17 2019 at 17:03)</a>:</h4>
<blockquote>
<p>I've added an answer to the question about stable Rust code using this already</p>
</blockquote>
<p>good point!</p>



<a name="178400766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400766">(Oct 17 2019 at 17:03)</a>:</h4>
<p>BTW, <span class="user-mention" data-user-id="132920">@gnzlbg</span>, I can't entirely tell if <a href="https://github.com/nikomatsakis/project-ffi-unwind/pull/10#discussion_r335498162" target="_blank" title="https://github.com/nikomatsakis/project-ffi-unwind/pull/10#discussion_r335498162">this concern</a> is still relevant</p>



<a name="178400874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400874">(Oct 17 2019 at 17:04)</a>:</h4>
<p>No it isn't, has been resolved</p>



<a name="178400888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400888">(Oct 17 2019 at 17:04)</a>:</h4>
<p>For some reason I cannot resolve it :/</p>



<a name="178400894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400894">(Oct 17 2019 at 17:04)</a>:</h4>
<p>The button does not show</p>



<a name="178400905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400905">(Oct 17 2019 at 17:05)</a>:</h4>
<p>oh probably because you don't have write access or something to the repo</p>



<a name="178400917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400917">(Oct 17 2019 at 17:05)</a>:</h4>
<p>I should transfer this to rust-lang</p>



<a name="178400922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400922">(Oct 17 2019 at 17:05)</a>:</h4>
<p>Ah ok, that makes sense, please resolve it for me</p>



<a name="178400924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178400924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178400924">(Oct 17 2019 at 17:05)</a>:</h4>
<p>I was kind of waiting but .. that's sort of silly</p>



<a name="178401550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178401550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178401550">(Oct 17 2019 at 17:13)</a>:</h4>
<p>OK, I revised some of the text and added that hackmd to the repo as our first "resolved concern" and I pushed some other improvements. Going to merg.</p>



<a name="178405877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/178405877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#178405877">(Oct 17 2019 at 18:04)</a>:</h4>
<p>Once again I submitted a review post-merge...not sure how inconvenient that is as a form of communication.</p>



<a name="179036140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036140">(Oct 25 2019 at 09:51)</a>:</h4>
<p>How is "unsoundness" defined? Is it potentially a better term than "LLVM-UB" for things that are known to be unsafe?</p>



<a name="179036605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036605">(Oct 25 2019 at 09:59)</a>:</h4>
<p>The UCG reference has a definition for that</p>



<a name="179036684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036684">(Oct 25 2019 at 10:00)</a>:</h4>
<p><a href="https://github.com/rust-lang/unsafe-code-guidelines/blob/master/reference/src/glossary.md#soundness-of-code--of-a-library" target="_blank" title="https://github.com/rust-lang/unsafe-code-guidelines/blob/master/reference/src/glossary.md#soundness-of-code--of-a-library">https://github.com/rust-lang/unsafe-code-guidelines/blob/master/reference/src/glossary.md#soundness-of-code--of-a-library</a></p>



<a name="179036717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036717">(Oct 25 2019 at 10:01)</a>:</h4>
<p>"sound == well-typed programs cannot cause Undefined Behavior"</p>



<a name="179036722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036722">(Oct 25 2019 at 10:01)</a>:</h4>
<p>A safe function is unsound if for some inputs or program states it can lead to a trace that has UB.</p>



<a name="179036816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036816">(Oct 25 2019 at 10:02)</a>:</h4>
<p><span class="user-mention" data-user-id="120076">@Kyle Strand</span> since sound is defined in terms of UB, i don't think you can replace "LLVM-UB" with it (EDIT: unless I'm misunderstanding which use of LLVM-UB you are talking about)</p>



<a name="179036819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036819">(Oct 25 2019 at 10:02)</a>:</h4>
<p><span class="user-mention" data-user-id="120076">@Kyle Strand</span>  <a href="https://blog.sigplan.org/2019/10/17/what-type-soundness-theorem-do-you-really-want-to-prove/" target="_blank" title="https://blog.sigplan.org/2019/10/17/what-type-soundness-theorem-do-you-really-want-to-prove/">https://blog.sigplan.org/2019/10/17/what-type-soundness-theorem-do-you-really-want-to-prove/</a> is a good read</p>



<a name="179036915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/210922-project-ffi-unwind/topic/tbd%20vs%20ub%20vs%20unspecified%20behavior/near/179036915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/210922-project-ffi-unwind/topic/tbd.20vs.20ub.20vs.20unspecified.20behavior.html#179036915">(Oct 25 2019 at 10:04)</a>:</h4>
<p>Probably not the best introduction if you haven't used the term before</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>